package com.alibaba.dubbo.common.configure;

import java.util.Map;

import com.alibaba.dubbo.common.extension.SPI;

/**
 * 可扩展的配置
 * @author kingbo.ruan
 * @time 2015年6月8日 上午8:18:25
 */
@SPI
public interface ExtensionConfigurator {
	/**
	 * find value from name
	 * @param name
	 * @return
	 */
	public Object getValue(String name);
	/**
	 * set <name, value> 
	 * @param name
	 * @param value
	 */
	public void   setValue(String name, Object value);
	
	/**
	 * if exists the key & value
	 * @param name
	 * @return
	 */
	public boolean containsValue(String name);
	/**
	 * get all key & value
	 * @return
	 */
	public Map<String, Object> getValues();
	/**
	 * set multiple key & value
	 * @param values
	 */
	public void setValues(Map<String, Object> values);
	
	public int order();
}
